// 对axios二次封装
// 1.基地址 、最长等待时间
// 2.响应拦截器

import axios from 'axios'
import { getToken, removeToken } from './storage'
import {GET_USER_INFO} from '@/store/actionTypes'
import { message } from 'antd'
import history from '@/utils/history'

const instance = axios.create({
     baseURL: 'http://geek.itheima.net/v1_0/', // 基地址,
    // baseURL: 'http://toutiao.itheima.net/v1_0/', // 基地址,
    timeout: 5000,
})

// 请求拦截器
instance.interceptors.request.use(
    function (config) {
     const token = getToken(GET_USER_INFO)
     config.headers.Authorization = 'Bearer ' + token
      return config
    },
    function (error) {
      return Promise.reject(error)
    }
  )
  
  // 响应拦截器
  instance.interceptors.response.use(
    function (response) {
      return response.data
    },
    function (error) {
      if(!error.response) return message.error('网络超时')
      if(error.response.status === 401){
        message.error('身份认证失效')
        removeToken()
        // 跳转刷新到登录页后提醒打断
        // window.location.href = '/login'
        // history不会刷新页面
        const href = window.location.pathname
        // console.log(href)
        history.replace('/login',{from:href })
      }
      return Promise.reject(error)
    }
  )
  
  export default instance
  